home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 May: Tool Chest / Developer CD Series Tool Chest (Apple Computer)(May 1999).iso / Tool Chest / Development Kits / MPW etc / Miscellaneous / MPW p2c / p2cLibraries / Builtins.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-01-29  |  1.4 KB  |  48 lines  |  [TEXT/MPS ]

  1. #ifndef BUILTINS_H
  2. #define BUILTINS_H
  3.  
  4. #include <types.h>
  5. #include <stdio.h>
  6. #include <string.h>  /* for memcpy, memset */
  7.  
  8. typedef void *Pointer;
  9. typedef FILE *FILEPtr;
  10.  
  11.  
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15.  
  16.  
  17. extern int ArgC;
  18. extern char **ArgV;
  19. extern char **Env;
  20. extern void InitArgCArgV(int theArgC, char **theArgV, char **theEnv, Boolean cvtToPString);
  21. extern int PB_Power(int base, int n);
  22.  
  23.  
  24. #define MoveLeft(s, d, l)  memcpy(d, s, l)
  25. #define MoveRight(s, d, l) memmove(d, s, l)
  26. #define FillChar(s, n, c)  memset(s, c, n)
  27. #define Odd(n)  ((n % 2) == 1)
  28.  
  29. #define BAnd(a, b)     ((unsigned long)(a) & (unsigned long)(b))
  30. #define BOr(a, b)     ((unsigned long)(a) | (unsigned long)(b))
  31. #define BXOr(a, b)     ((unsigned long)(a) ^ (unsigned long)(b))
  32. #define BNot(a)         (~(unsigned long)(a))
  33. #define BSL(a, b)     ((unsigned long)(a) << ((b) & 0x3FUL))
  34. #define BSR(a, b)     ((unsigned long)(a) >> ((b) & 0x3FUL))
  35. #define BRotL(a, b) ((unsigned long)(a) << ((b) & 0x3FUL)) | ((unsigned long)(a) >> (32UL - ((b) & 0x3FUL)))
  36. #define BRotR(a, b) ((unsigned long)(a) >> ((b) & 0x3FUL)) | ((unsigned long)(a) << (32UL - ((b) & 0x3FUL)))
  37. #define BTst(a, b)    (((unsigned long)(a) & (1UL << (b))) != 0)
  38. #define HiWrd(a)         ((unsigned short)((unsigned long)(a) >> 16UL))
  39. #define LoWrd(a)         ((unsigned short)((unsigned long)(a) & 0xFFFFUL))
  40. #define BClr(a, b)     (a = ((unsigned long)(a) & (~(1UL << (b)))))
  41. #define BSet(a, b)    (a = ((unsigned long)(a) | (1UL << (b))))
  42.  
  43. #ifdef __cplusplus
  44. }
  45. #endif
  46.  
  47.  
  48. #endif